﻿using e_commerce.BLL.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace e_commerce.BLL.Manager.Client
{
    public interface IOrderClientApplicationService
    {
        #region 客户端接口
        /// <summary>
        /// 生产订单
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        string CreateOrder(Order order);
        /// <summary>
        /// 通过订单id取消订单
        /// </summary>
        /// <param name="orderId"></param>
        void CancleOrderByOrderId(string orderId);
        /// <summary>
        /// 通过订单Id付款
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        void PayByOrderId(string orderId);
        /// <summary>
        /// 通过订单id申请退款
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        void ApplyRefundByOrderId(string orderId);
        /// <summary>
        /// 通过订单id确认订单
        /// </summary>
        /// <param name="orderId"></param>
        void ConfirmOrderByOrderId(string orderId);
        /// <summary>
        /// 评论订单
        /// </summary>
        /// <param name="orderId"></param>
        void EvaluateOrder(Comment comment);
        /// <summary>
        /// 根据订单id申请退货
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        void ApplyReturnByOrderId(string orderId);
        /// <summary>
        /// 添加商品至购物车
        /// </summary>
        /// <param name="goodsId"></param>
        /// <param name="customerId"></param>
        /// <param name="count"></param>
        void AddGoodsToShoppingCart(int goodsId, int customerId, int count = 1);
        /// <summary>
        /// 在购物车中删除商品
        /// </summary>
        /// <param name="goodsId"></param>
        /// <param name="customerId"></param>
        void DeleteGoodsToShppingCart(int goodsId, int customerId);
        /// <summary>
        /// 修改购物车中商品数量
        /// </summary>
        /// <param name="customerId"></param>
        /// <param name="goodsId"></param>
        /// <param name="count"></param>
        void ModifyGoodsCountFromShoppintCart(int customerId, int goodsId, int count);
        #endregion
    }
}
